double(x) → permute(x, x, a)
permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)
permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))
p(0) → 0
p(s(x)) → x
ack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, s(0)) → s(x)
plus(x, 0) → x
isZero(0) → true
isZero(s(x)) → false
↳ QTRS
↳ DependencyPairsProof
double(x) → permute(x, x, a)
permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)
permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))
p(0) → 0
p(s(x)) → x
ack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, s(0)) → s(x)
plus(x, 0) → x
isZero(0) → true
isZero(s(x)) → false
PERMUTE(false, x, b) → P(x)
ACK(s(x), 0) → ACK(x, s(0))
DOUBLE(x) → PERMUTE(x, x, a)
PERMUTE(x, y, a) → ISZERO(x)
PERMUTE(false, x, b) → PERMUTE(ack(x, x), p(x), c)
ACK(s(x), s(y)) → ACK(x, ack(s(x), y))
PERMUTE(y, x, c) → PERMUTE(x, y, a)
PLUS(x, s(s(y))) → PLUS(s(x), y)
PERMUTE(x, y, a) → PERMUTE(isZero(x), x, b)
ACK(s(x), s(y)) → ACK(s(x), y)
ACK(0, x) → PLUS(x, s(0))
PLUS(s(x), y) → PLUS(x, s(y))
PERMUTE(false, x, b) → ACK(x, x)
double(x) → permute(x, x, a)
permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)
permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))
p(0) → 0
p(s(x)) → x
ack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, s(0)) → s(x)
plus(x, 0) → x
isZero(0) → true
isZero(s(x)) → false
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
PERMUTE(false, x, b) → P(x)
ACK(s(x), 0) → ACK(x, s(0))
DOUBLE(x) → PERMUTE(x, x, a)
PERMUTE(x, y, a) → ISZERO(x)
PERMUTE(false, x, b) → PERMUTE(ack(x, x), p(x), c)
ACK(s(x), s(y)) → ACK(x, ack(s(x), y))
PERMUTE(y, x, c) → PERMUTE(x, y, a)
PLUS(x, s(s(y))) → PLUS(s(x), y)
PERMUTE(x, y, a) → PERMUTE(isZero(x), x, b)
ACK(s(x), s(y)) → ACK(s(x), y)
ACK(0, x) → PLUS(x, s(0))
PLUS(s(x), y) → PLUS(x, s(y))
PERMUTE(false, x, b) → ACK(x, x)
double(x) → permute(x, x, a)
permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)
permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))
p(0) → 0
p(s(x)) → x
ack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, s(0)) → s(x)
plus(x, 0) → x
isZero(0) → true
isZero(s(x)) → false
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ MNOCProof
↳ QDP
↳ QDP
PLUS(s(x), y) → PLUS(x, s(y))
PLUS(x, s(s(y))) → PLUS(s(x), y)
double(x) → permute(x, x, a)
permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)
permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))
p(0) → 0
p(s(x)) → x
ack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, s(0)) → s(x)
plus(x, 0) → x
isZero(0) → true
isZero(s(x)) → false
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
PLUS(s(x), y) → PLUS(x, s(y))
PLUS(x, s(s(y))) → PLUS(s(x), y)
double(x) → permute(x, x, a)
permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)
permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))
p(0) → 0
p(s(x)) → x
ack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, s(0)) → s(x)
plus(x, 0) → x
isZero(0) → true
isZero(s(x)) → false
double(x0)
permute(x0, x1, a)
permute(false, x0, b)
permute(true, x0, b)
permute(x0, x1, c)
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
isZero(0)
isZero(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
PLUS(s(x), y) → PLUS(x, s(y))
PLUS(x, s(s(y))) → PLUS(s(x), y)
double(x0)
permute(x0, x1, a)
permute(false, x0, b)
permute(true, x0, b)
permute(x0, x1, c)
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
isZero(0)
isZero(s(x0))
double(x0)
permute(x0, x1, a)
permute(false, x0, b)
permute(true, x0, b)
permute(x0, x1, c)
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
isZero(0)
isZero(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDP
PLUS(s(x), y) → PLUS(x, s(y))
PLUS(x, s(s(y))) → PLUS(s(x), y)
PLUS(x, s(s(y))) → PLUS(s(x), y)
POL(PLUS(x1, x2)) = 2·x1 + 2·x2
POL(s(x1)) = 2 + x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
PLUS(s(x), y) → PLUS(x, s(y))
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
ACK(s(x), 0) → ACK(x, s(0))
ACK(s(x), s(y)) → ACK(s(x), y)
ACK(s(x), s(y)) → ACK(x, ack(s(x), y))
double(x) → permute(x, x, a)
permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)
permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))
p(0) → 0
p(s(x)) → x
ack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, s(0)) → s(x)
plus(x, 0) → x
isZero(0) → true
isZero(s(x)) → false
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
ACK(s(x), 0) → ACK(x, s(0))
ACK(s(x), s(y)) → ACK(s(x), y)
ACK(s(x), s(y)) → ACK(x, ack(s(x), y))
double(x) → permute(x, x, a)
permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)
permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))
p(0) → 0
p(s(x)) → x
ack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, s(0)) → s(x)
plus(x, 0) → x
isZero(0) → true
isZero(s(x)) → false
double(x0)
permute(x0, x1, a)
permute(false, x0, b)
permute(true, x0, b)
permute(x0, x1, c)
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
isZero(0)
isZero(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
ACK(s(x), 0) → ACK(x, s(0))
ACK(s(x), s(y)) → ACK(s(x), y)
ACK(s(x), s(y)) → ACK(x, ack(s(x), y))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
ack(0, x) → plus(x, s(0))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
double(x0)
permute(x0, x1, a)
permute(false, x0, b)
permute(true, x0, b)
permute(x0, x1, c)
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
isZero(0)
isZero(s(x0))
double(x0)
permute(x0, x1, a)
permute(false, x0, b)
permute(true, x0, b)
permute(x0, x1, c)
p(0)
p(s(x0))
isZero(0)
isZero(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
ACK(s(x), 0) → ACK(x, s(0))
ACK(s(x), s(y)) → ACK(s(x), y)
ACK(s(x), s(y)) → ACK(x, ack(s(x), y))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
ack(0, x) → plus(x, s(0))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
PERMUTE(false, x, b) → PERMUTE(ack(x, x), p(x), c)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
PERMUTE(x, y, a) → PERMUTE(isZero(x), x, b)
double(x) → permute(x, x, a)
permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)
permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))
p(0) → 0
p(s(x)) → x
ack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, s(0)) → s(x)
plus(x, 0) → x
isZero(0) → true
isZero(s(x)) → false
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
PERMUTE(false, x, b) → PERMUTE(ack(x, x), p(x), c)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
PERMUTE(x, y, a) → PERMUTE(isZero(x), x, b)
double(x) → permute(x, x, a)
permute(x, y, a) → permute(isZero(x), x, b)
permute(false, x, b) → permute(ack(x, x), p(x), c)
permute(true, x, b) → 0
permute(y, x, c) → s(s(permute(x, y, a)))
p(0) → 0
p(s(x)) → x
ack(0, x) → plus(x, s(0))
ack(s(x), 0) → ack(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, s(0)) → s(x)
plus(x, 0) → x
isZero(0) → true
isZero(s(x)) → false
double(x0)
permute(x0, x1, a)
permute(false, x0, b)
permute(true, x0, b)
permute(x0, x1, c)
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
isZero(0)
isZero(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
PERMUTE(false, x, b) → PERMUTE(ack(x, x), p(x), c)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
PERMUTE(x, y, a) → PERMUTE(isZero(x), x, b)
isZero(0) → true
isZero(s(x)) → false
ack(0, x) → plus(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
p(0) → 0
p(s(x)) → x
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
double(x0)
permute(x0, x1, a)
permute(false, x0, b)
permute(true, x0, b)
permute(x0, x1, c)
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
isZero(0)
isZero(s(x0))
double(x0)
permute(x0, x1, a)
permute(false, x0, b)
permute(true, x0, b)
permute(x0, x1, c)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
PERMUTE(false, x, b) → PERMUTE(ack(x, x), p(x), c)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
PERMUTE(x, y, a) → PERMUTE(isZero(x), x, b)
isZero(0) → true
isZero(s(x)) → false
ack(0, x) → plus(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
p(0) → 0
p(s(x)) → x
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
isZero(0)
isZero(s(x0))
PERMUTE(s(x0), y1, a) → PERMUTE(false, s(x0), b)
PERMUTE(0, y1, a) → PERMUTE(true, 0, b)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
PERMUTE(s(x0), y1, a) → PERMUTE(false, s(x0), b)
PERMUTE(false, x, b) → PERMUTE(ack(x, x), p(x), c)
PERMUTE(0, y1, a) → PERMUTE(true, 0, b)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
isZero(0) → true
isZero(s(x)) → false
ack(0, x) → plus(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
p(0) → 0
p(s(x)) → x
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
isZero(0)
isZero(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
PERMUTE(s(x0), y1, a) → PERMUTE(false, s(x0), b)
PERMUTE(false, x, b) → PERMUTE(ack(x, x), p(x), c)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
isZero(0) → true
isZero(s(x)) → false
ack(0, x) → plus(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
p(0) → 0
p(s(x)) → x
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
isZero(0)
isZero(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
PERMUTE(s(x0), y1, a) → PERMUTE(false, s(x0), b)
PERMUTE(false, x, b) → PERMUTE(ack(x, x), p(x), c)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
ack(0, x) → plus(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
p(0) → 0
p(s(x)) → x
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
isZero(0)
isZero(s(x0))
isZero(0)
isZero(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
PERMUTE(s(x0), y1, a) → PERMUTE(false, s(x0), b)
PERMUTE(false, x, b) → PERMUTE(ack(x, x), p(x), c)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
ack(0, x) → plus(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
p(0) → 0
p(s(x)) → x
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
PERMUTE(false, s(z0), b) → PERMUTE(ack(s(z0), s(z0)), p(s(z0)), c)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
PERMUTE(s(x0), y1, a) → PERMUTE(false, s(x0), b)
PERMUTE(false, s(z0), b) → PERMUTE(ack(s(z0), s(z0)), p(s(z0)), c)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
ack(0, x) → plus(x, s(0))
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
p(0) → 0
p(s(x)) → x
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
PERMUTE(s(x0), y1, a) → PERMUTE(false, s(x0), b)
PERMUTE(false, s(z0), b) → PERMUTE(ack(s(z0), s(z0)), p(s(z0)), c)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
p(s(x)) → x
ack(0, x) → plus(x, s(0))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
PERMUTE(false, s(z0), b) → PERMUTE(ack(s(z0), s(z0)), z0, c)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
PERMUTE(s(x0), y1, a) → PERMUTE(false, s(x0), b)
PERMUTE(false, s(z0), b) → PERMUTE(ack(s(z0), s(z0)), z0, c)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
p(s(x)) → x
ack(0, x) → plus(x, s(0))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
PERMUTE(s(x0), y1, a) → PERMUTE(false, s(x0), b)
PERMUTE(false, s(z0), b) → PERMUTE(ack(s(z0), s(z0)), z0, c)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
ack(0, x) → plus(x, s(0))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
p(0)
p(s(x0))
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
p(0)
p(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
PERMUTE(s(x0), y1, a) → PERMUTE(false, s(x0), b)
PERMUTE(false, s(z0), b) → PERMUTE(ack(s(z0), s(z0)), z0, c)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
ack(0, x) → plus(x, s(0))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
PERMUTE(false, s(x0), b) → PERMUTE(ack(x0, ack(s(x0), x0)), x0, c)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ ForwardInstantiation
PERMUTE(s(x0), y1, a) → PERMUTE(false, s(x0), b)
PERMUTE(y, x, c) → PERMUTE(x, y, a)
PERMUTE(false, s(x0), b) → PERMUTE(ack(x0, ack(s(x0), x0)), x0, c)
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
ack(0, x) → plus(x, s(0))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
PERMUTE(x0, s(y_0), c) → PERMUTE(s(y_0), x0, a)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ MNOCProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Rewriting
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ ForwardInstantiation
↳ QDP
↳ QDPSizeChangeProof
PERMUTE(s(x0), y1, a) → PERMUTE(false, s(x0), b)
PERMUTE(x0, s(y_0), c) → PERMUTE(s(y_0), x0, a)
PERMUTE(false, s(x0), b) → PERMUTE(ack(x0, ack(s(x0), x0)), x0, c)
ack(s(x), s(y)) → ack(x, ack(s(x), y))
ack(s(x), 0) → ack(x, s(0))
ack(0, x) → plus(x, s(0))
plus(0, y) → y
plus(s(x), y) → plus(x, s(y))
plus(x, s(0)) → s(x)
plus(x, s(s(y))) → s(plus(s(x), y))
plus(x, 0) → x
ack(0, x0)
ack(s(x0), 0)
ack(s(x0), s(x1))
plus(0, x0)
plus(s(x0), x1)
plus(x0, s(s(x1)))
plus(x0, s(0))
plus(x0, 0)
From the DPs we obtained the following set of size-change graphs: